跳至主要内容

把兩個網站放在同個 Linode

因為我又想架另一個網站,考量到只是靜態網站不需太多空間資源,於是在想有沒有可能把兩個網站都放在同個 Linode 空間,這樣就不用多開方案付錢了。

沒想到研究一番後,發現比想像中簡單的多,不管是子網域或是不同網域都行的通。

例如你有一個網域 example.com,你想用子網域分成兩個網站 (blog.example.com, profile.example.com) 或是有兩個網域 (exampleA.com, exampleB.com)

要注意你的網站本身用途,如果有很複雜的資料庫或是規模較大,還是分開空間經營比較保險。

目前此站《郊郊郊狼》跟新站都是靜態網站,所以我比較敢這樣做。

這邊文章是基於此站架完後再延伸,要了解架站初始設定可以參考上一篇

基本資料:

  • 本地端電腦 (Win11 + Powershell)
  • Linode 的方案 (這次用 Shared CPU - Nanode 1 GB 方案,每月 5 美金,OS 為 Ubuntu)
  • 我都是看英文資源,所以要跟以下流程,需要有一定英文基礎
  • 網路伺服器為 Nginx,如果你用 Apache,需另外找資料了

將新網域/子網域加入 Linode

這個官方已經有文件就不說了,基本上就是照著跑

建立新 Conf 檔,並且執行串聯

  1. 在 Nginx 的 sites-available 資料夾建立自訂域名的 conf 檔案

    sudo touch /etc/nginx/sites-available/exampleNew.com

    記得不用加 .conf 副檔名

  2. 然後編輯該 conf 檔

    sudo nano /etc/nginx/sites-available/exampleNew.com

    貼上以下,exampleNew.com 要改成自己的網域

    server {
    listen 80;
    listen [::]:80;
    server_name exampleNew.com;

    root /var/www/exampleNew.com;
    index index.html;

    location / {
    try_files $uri $uri/ =404;
    }
    }
  3. 使用串聯指令

    sudo ln -s /etc/nginx/sites-available/exampleNew.com /etc/nginx/sites-enabled/
  4. 測試 conf 檔輸入正確,正確會顯示 Success

    sudo nginx -t
  5. 有成功就重啟

    sudo systemctl restart nginx
  6. conf 有指定 root index 檔案,所以要建立相關資料夾

    sudo mkdir /var/www/exampleNew.com
  7. 確保 指定使用者可以在 Filezilla 傳輸(如果有的話),記得變更權限

    sudo chown -R example_user /var/www/exampleNew.com/

有沒有發現跟上一篇的步驟一樣,沒錯,只要你會建第一個,基本上就會很多個了,就是記得:

  1. /etc/nginx/sites-available/ 建立新 conf
  2. 串聯檔案到 /etc/nginx/sites-enabled/
  3. /var/www/ 要記得建立新網域資料夾
  4. 新加的網域記得也要跑 Cerbot

如果以 exampleA.com, exampleB.com 兩個網域舉例

最後新增成功的話,資料夾跟內容應該會長這樣:

  • /etc/nginx/sites-available/ 會有 exampleA.com, exampleB.com 兩個 conf
  • /etc/nginx/sites-enabled/ 會有 exampleA.com, exampleB.com 兩個 conf
  • /var/www/ 會有 exampleA.com, exampleB.com 兩個資料夾